Skip to content

Implement per-message profile management and sending with a per-message profile#309

Draft
dozro wants to merge 26 commits intoSableClient:devfrom
dozro:feat/allow-setting-pmp
Draft

Implement per-message profile management and sending with a per-message profile#309
dozro wants to merge 26 commits intoSableClient:devfrom
dozro:feat/allow-setting-pmp

Conversation

@dozro
Copy link
Member

@dozro dozro commented Mar 16, 2026

Description

Fixes #298
Implements usage of MSC4144

for future development: #340 and #341

This pull request introduces support for per-message profiles (PMP), allowing users to set and use different profiles (such as display name, avatar, and pronouns) on a per-message basis. It adds both backend logic and UI components for managing these profiles, updates the message sending and rendering logic to support PMP, and exposes new settings and commands for users to interact with this feature. Additionally, it refactors some settings components for better modularity.

The most important changes are:

Per-Message Profile (PMP) Support:

  • Added logic to send messages with a per-message profile if one is selected, including updating the message content to include the PMP data (com.beeper.per_message_profile).
  • Added new commands (/usepmp, /addpmp, /delpmp) to manage and use per-message profiles via the chat input.

Settings UI Enhancements:

  • Introduced a new "Persona" section in the settings, with a dedicated page (PerMessageProfilePage) and overview/editor components for managing per-message profiles. (open to suggestion where that belongs lol)

Pronoun Handling Refactor:

  • Moved PronounSet and parsePronounsInput to a shared utility file for consistent usage across the codebase, and improved pronoun filtering logic in the timeline.

Settings Refactoring:

  • Refactored the animal cosmetics ("cat" settings) into a standalone component for better modularity and maintainability.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

@dozro dozro changed the title WIP: Implement per-message profile management and fetching functionality WIP: Implement per-message profile management and sending with a per-message profile Mar 16, 2026
@dozro dozro marked this pull request as ready for review March 17, 2026 19:23
@dozro dozro requested review from 7w1 and Just-Insane as code owners March 17, 2026 19:23
@dozro dozro requested a review from hazre as a code owner March 17, 2026 19:23
@dozro dozro changed the title WIP: Implement per-message profile management and sending with a per-message profile Implement per-message profile management and sending with a per-message profile Mar 17, 2026
@dozro dozro marked this pull request as draft March 17, 2026 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

posibility to set per message profile

1 participant